package com.cskaoyan;

import com.cskaoyan.bean.User;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface UserMapper {

    // 根据id获取User信息

    User selectUserById(@Param("id")Integer id);

    // 多个参数
    int insertUser(@Param("id") Integer id,
                   @Param("username") String name,
                   @Param("birthday") Date birthday);


    // 传递对象
    int insertUserWithUser(@Param("user") User user);

    // 通过Id修改User的信息
    int updateUserById(@Param("id") Integer id,
                       @Param("user") User user);


    // 通过map来传值
    List<User> selectUserByMap(Map<String,Object> map);


    // 通过map来传值
    List<User> selectUserByMapWithParamAnnotation(@Param("hashmap") Map<String,Object> map);

    // 按位置来传值
    int insertUserUseIndex(Integer id, String name, Date birthday);


    // 根据id获取User信息

    User selectUserByIdUse$(@Param("id")Integer id);

    // 传入表名
    User selectUserByIdAndTableName(@Param("id") Integer id,
                                    @Param("tableName") String tableName);


    // 传入列名
    User selectUserOrderByDesc(@Param("columnName") String columnName);


    // 分页
    List<User> selectUserListByStartIndexAndPageNum(@Param("startIndex") Integer startIndex,
                                                    @Param("pageNum") Integer pageNum);


}
